How do developers use C++ libraries? An empirical study

نویسندگان

  • Di Wu
  • Lin Chen
  • Yuming Zhou
  • Baowen Xu
چکیده

C++ libraries provide an abundance of reusable components for writing high-quality programs and are thus widely adopted by software developers. However, to date there is little work investigating how these libraries are actually used in real software. In this paper, we perform an empirical study to investigate the adoption of C++ standard libraries in open-source applications, with the goal to provide actionable information for developers to help them employ libraries more efficiently. To this end, we analyze 379 historical revisions of 30 applications, containing 149 million lines of C++ code, to conduct the experiment. The experimental results show that: (1) three standard libraries (i.e. Containers Library, Utilities Library, and Strings Library) are significantly more often used than other libraries; (2) the new libraries of C++11 (i.e. Regular Expressions Library, Atomic Operations Library, and Thread Support Library) are significantly less often used than the formerlyestablished libraries; (3) the deprecated library constructs (i.e. auto pointers, function objects, and array I/O operations) are not used at a declining frequency; and (4) applications with a larger size do not adopt libraries more frequently. Based on these results, we propose four suggestions, which could help developers learn and use C++ libraries in an efficient way. KeywordsProgramming Language, C++, Library, Empirical Study

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

IV = 0 Security Cryptographic Misuse of Libraries

While many essential cryptographic primitives have sound theoretical constructions and associated implementations, their security guarantees do not always hold in practice. We find that these security flaws do not usually exist in the libraries themselves, but instead in how developers use these libraries. We select the most popular cryptographic libraries from five programming languages (C, C+...

متن کامل

How Do Developers Use Parallel Libraries? by Semih Okur Thesis

Parallel programming is hard. The industry leaders hope to convert the hard problem of using parallelism into the easier problem of using a parallel library. Yet, we know little about how programmers adopt these libraries in practice. Without such knowledge, other programmers cannot educate themselves about the state of the practice, library designers are unaware of API misusage, researchers ma...

متن کامل

The use of C++ exception handling constructs: A comprehensive study

Exception handling (EH) is a well-known mechanism that aims at improving software reliability in a modular way—allowing a better separation between the code that deals with exceptional conditions and the code that deals with the normal control flow of a program. Although the exception handling mechanism was conceived almost 40 years ago, formulating a reasonable design of exception handling cod...

متن کامل

Effective and efficient reuse with software libraries

Research in software engineering has shown that software reuse positively affects the competitiveness of an organization: the productivity of the development team is increased, the time-to-market is reduced, and the overall quality of the resulting software is improved. Today’s code repositories on the Internet provide a large number of reusable software libraries with a variety of functionalit...

متن کامل

Web Software Visualization Via Google’s Visualization API

There exist very few toolkits and libraries that make it easy for developers to create visualizations of empirical software metrics data. For this reason the use of software visualization tools is not wide-spread within the software development industry. We are exploring creating visualizations of software metrics using the Google Visualization API for the purposes of visual software analytics....

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2015